<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <ul>
    <li>111</li>
    <li>222</li>
    <li>333</li>
  </ul>
  <script>
    // 1.Array.of() 将参数中所有值作为元素形成数组。
    var arr = Array.of("吕布", "曹操", ["三项之力", "无尽之刃"]);
    console.log(arr)
    //2 Array.from() 将类数组对象或可迭代对象转化为数组
    var lis = document.getElementsByTagName("li");
    var lisarr = Array.from(lis)
    console.log(lisarr.reverse())
    //3.可迭代对象转化为数组
    var obj = {
      0: 'kkk',
      1: 'hhh',
      2: 'mmm',
      length: 3
    }
    let arr4 = Array.from(obj)
    console.log(arr4)
    // 4.find() 查找数组中符合条件的元素,若有多个符合条件的元素，则返回第一个元素。
    var arr8 = [238, 12, 1, 2, 3, 1, 23, 1];
    var ele = arr8.find(function (item) {
      // item 代表数组每一项
      if (item > 8) {
        return item
      }
    })
    console.log(ele)
    //5.findIndex() 查找数组中符合条件的元素的下标,若有多个符合条件的元素，则返回第一个元素下标。
    var eleIndex = arr8.findIndex(function (item) {
      // item 代表数组每一项
      if (item < 8) {
        return item
      }
    })
    console.log(eleIndex)
    //6. arr.includes() 返回布尔值，判断是否在数组找到参数字符串。
    var arr10 = ["啤酒", "饮料", "矿泉水"];
    if (arr10.includes("啤酒")) {
      console.log("此数组种含有啤酒的数组项")
    }
    //7 fill(ele,start,end)将一定范围索引的数组元素内容填充为单个指定的值
    // 参数1：用来填充的值
    // 参数2：被填充的起始索引
    // 参数3(可选)：被填充的结束索引，默认为数组末尾
    // 留头不留尾
    var myarr = ["王一烦", "于竟涵", "某人", "啤酒", "饮料", "矿泉水"]
    myarr.fill("米粥", 1, 4)
    console.log(myarr)
    //8.  .copyWithin()将一定范围索引的数组元素修改为此数组另一指定范围索引的元素。
    // 参数1：被修改的起始索引
    // 参数2：被用来覆盖的数据的起始索引
    // 参数3(可选)：被用来覆盖的数据的结束索引，默认为数组末尾
    // 留头不留尾
    var arry = [1, 2, 3, 4, 5, 6, 7, 8, 9];
    arry.copyWithin(1, 4, 6)
    console.log(arry)
    // 9 flat 嵌套数组转一维数组数组降维
    var arrx = ['11', ['33', '44', ['55', '66', ['99', '88']]]]
    console.log(arrx.flat(2))//数组将2维
    // Infinity  转为1维数组
    console.log(arrx.flat(Infinity))
    //10 flatMap()  降维循环
    // flatMap()先对数组中每个元素进行了的处理，再对数组执行 flat() 方法。
    // 参数1：遍历函数，该遍历函数可接受3个参数：当前元素、当前元素索引、原数组
    // 参数2：指定遍历函数中 this 的指向
    var newarr = arrx.flatMap(function (item, index, arr) {
      console.log(item)
      return item
    })
    console.log(newarr)

  </script>
</body>

</html>